package com.hippomeetsskunk.savanna.types.resource;

import java.util.List;
import java.util.Set;

import com.hippomeetsskunk.savanna.types.meta.ResourceType;
import com.hippomeetsskunk.savanna.types.meta.SimObjectType;
import com.hippomeetsskunk.savanna.types.person.Skills;
import com.hippomeetsskunk.savanna.types.world.Region;
import com.hippomeetsskunk.savanna.types.world.Time;

public interface SimObject {

	public SimObjectType getType();
	public double getQuality();
	/**
	 * intrinsic value.
	 * acquisition cost + cost of living for every day of work spent
	 * @return
	 */
	public double getIntrinsicValue();
	public void improve(double work, List<RelocatableObject> resources);
	public Skills getSkillsForImprovement();
	public Set<ResourceType> getResourcesForImprovement();

	void startDay(Time time, Region region);
}
